package com.bonc.ioc.dao;

import com.bonc.ioc.model.ShareInfo;
import com.bonc.ioc.vo.ShareVo;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

/**
 * 分享相关接口
 * @author ZhangXu
 * @date 2021/3/18 16:53
 */
@Mapper
public interface ShareDao {
    /**
     * 添加分享
     * @param param 资源类型, 资源id, 用户id, 分享对象id, 分享开始时间, 分享结束时间, 备注
     * @return
     */
    Integer addShare(ShareVo param);

    /**
     * 分页查询分享列表
     * @param map 用户id, 分享类型1:分享给我;2:我的分享, 查询关键字, 查询时段-开始时间, 查询时段-结束时间
     * @return 分享列表
     */
    List<ShareInfo> selectShareListByPage(HashMap<String, Object> map);

    /**
     * 通过资源id、用户id(分享者)、分享对象id(接收者)查询分享记录id
     * @param param 资源id, 用户id, 分享对象id
     * @return 分享记录id
     */
    ShareInfo queryShareByTripleId(ShareVo param);

    /**
     * 逻辑删除分享记录
     * @param param 分享id, 用户id
     * @return
     */
    Integer updateShareTombstone(ShareVo param);

    /**
     * 逻辑删除分享记录 取消
     * @param param 分享id, 用户id
     * @return
     */
    Integer updateShareEnable(ShareVo param);

    /**
     * 物理删除分享记录
     * @param param 分享id
     * @return
     */
    Integer deleteShare(ShareVo param);
}
